styled
の引数に React コンポーネントを渡すとレンダリング時、そのプロパティに Styled Components がランダムに生成したclassName
が渡されます。
const Foo = props => {
return ...
};
const StyledFoo = styled(Foo)`
color: orange;
`;
// ...
コンポーネントの構造が複雑な時、それら全てにclassName
をクラスに付与することで.scope.my-className
のようなスコープを付きのセレクタでスタイル付けできるようになります。
またその時styled
の中で.scope
は&
と書くことができるので、実際には&.my-className
と書くことができます。
const Foo = props => {
return (
...
);
};
const StyledFoo = styled(Foo)`
&.first {
color: orange;
}
&.second {
width: 980px;
margin: 0 auto;
}
&.third {
display: inline-flex;
}
`;